-- Copyright (c) 2015,2016 Lucky Byte, Inc.
--
-- Summary : 生成各种对账报表文件
--
-- Author  : 吴小虎 <xiaohu@lucky-byte.com>
-- Since   : 2016.6.20
--
-- History
--  * 2016.6.20 : 创建此文件
--

-- 共享数据
local _shared_vars = {}

-- 对账日期，清算日期
_shared_vars.contrast_date = '20160613'
--_shared_vars.contrast_date = os.date('%Y%m%d')
_shared_vars.settl_date  = string.sub(_shared_vars.contrast_date, 5, 8)

logger.info('对账日期[%s]，清算日期[%s].', _shared_vars.contrast_date,
    _shared_vars.settl_date)

-- 对账结果文件存放目录, 如果不存在则创建之
_shared_vars.save_path = string.format('%s/contrast/%s/%s',
    runtime.basedir, string.sub(_shared_vars.contrast_date, 1, 6),
    _shared_vars.contrast_date)
local _f = io.open(_shared_vars.save_path, "r")
if not _f then
    os.execute('mkdir -p ' .. _shared_vars.save_path)
else
    _f:close()
end

-- 数据导入模块
local _dbload = require('core.contrast.dbload')

-- 银联流水文件，每天银联自动下发
local _upay_path = '/tmp'
local _upay_date = string.sub(_shared_vars.contrast_date, 3, 8)
local _coma_name = string.format('IND%s32ACOMA', _upay_date)
local _coma_path = string.format('%s/%s', _upay_path, _coma_name)
local _f = io.open(_coma_path)
if not _f then
    logger.error('银联对账流水文件[%s]不存在，对账失败.', _coma_path)
    return false
end
_f:close()

-- 拷贝银联流水数据文件到对账目录
logger.debug('拷贝银联对账流水文件[%s]到[%s].', _coma_path,
    _shared_vars.save_path)
if os.execute(string.format('cp -r %s %s/%s',
    _coma_path, _shared_vars.save_path, _coma_name)) == 1 then
    logger.error('拷贝银联对账流水文件[%s]到[%s]失败，对账失败.',
        _coma_path, _shared_vars.save_path)
    return false
end

-- 装载 COMA 数据
if not _dbload.load_coma(_coma_path) then
    logger.error('导入银联对账流水文件[%s]失败，COMA对账失败.', coma_path)
    return false
end

local report01 = require "core.contrast.report01"
report01.run(_shared_vars)
